1644A - Doors and Keys - CodeForces Solution


implementation *800

Please click on ads to support us..

Python Code:

n = int(input())
for i in range(n):
    s = input()
    if s.find("r") < s.find("R") and s.find("g") < s.find("G") and s.find("b") < s.find("B"):
        print("YES")
    else:
        print("NO")

C++ Code:

#include <iostream>
#include <string>

bool checkKey(struct Keys *keys, char door);

struct Keys {
    int red = 0;
    int green = 0;
    int blue = 0;
};

int main(void) {
    int t;  // Amount of test cases;

    std::cin >> t;
    for (int i = 0; i < t; ++i) {
        bool success = true;
        struct Keys keys;
        std::string map;    // Map of the hallway.

        std::cin >> map;
        for (size_t j = 0; j < map.size(); ++j) {
            if (map[j] == 'r')
                keys.red += 1;
            else if (map[j] == 'g')
                keys.green += 1;
            else if (map[j] == 'b')
                keys.blue += 1;
            else
                success = checkKey(&keys, map[j]);

            if (!success)
                break;
        }
        if (success)
            std::cout << "YES" << std::endl;
        else
            std::cout << "NO" << std::endl;
    }
}

bool checkKey(struct Keys *keys, char door) {
    if (door == 'R' && keys->red > 0) {
        keys->red -= 1;
        return true;
    } else if (door == 'G' && keys->green > 0) {
        keys->green -= 1;
        return true;
    } else if (door == 'B' && keys->blue > 0) {
        keys->blue -= 1;
        return true;
    }
    return false;
}

 	      		 		 	  			  	   			 	


Comments

Submit
0 Comments
More Questions

1476E - Pattern Matching
1107A - Digits Sequence Dividing
1348A - Phoenix and Balance
1343B - Balanced Array
1186A - Vus the Cossack and a Contest
1494A - ABC String
1606A - AB Balance
1658C - Shinju and the Lost Permutation
1547C - Pair Programming
550A - Two Substrings
797B - Odd sum
1093A - Dice Rolling
1360B - Honest Coach
1399C - Boats Competition
1609C - Complex Market Analysis
1657E - Star MST
1143B - Nirvana
1285A - Mezo Playing Zoma
919B - Perfect Number
894A - QAQ
1551A - Polycarp and Coins
313A - Ilya and Bank Account
1469A - Regular Bracket Sequence
919C - Seat Arrangements
1634A - Reverse and Concatenate
1619C - Wrong Addition
1437A - Marketing Scheme
1473B - String LCM
1374A - Required Remainder
1265E - Beautiful Mirrors